package view.backing.Utils.Validator;

import chemtools_logica.LN.IR.LN_SFEmpresaRemote;

import chemtools_logica.LN.IR.LN_SFInsumoRemote;

import chemtools_logica.LN.IR.LN_SFOrdenproduccionRemote;

import chemtools_logica.LN.IR.LN_SFTipoproductoRemote;

import java.util.Hashtable;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import javax.servlet.http.HttpSession;


public class CantidadContProductoValidator implements Validator{
    LN_SFTipoproductoRemote lN_SFTipoproductoRemote;

    @Override
    public void validate(FacesContext facesContext, UIComponent uIComponent, Object object) throws ValidatorException {
        try{        
            int cant = Integer.parseInt(object.toString());
            
            try {
                final Context context = getInitialContext();
                lN_SFTipoproductoRemote = (LN_SFTipoproductoRemote) context.lookup("map-LN_SFTipoproducto#chemtools_logica.LN.IR.LN_SFTipoproductoRemote"); 
            }catch(Exception e){}
            
            ;
            HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
            
            int idTProducto = Integer.parseInt(session.getAttribute("idTipoProducto").toString());
            
            double cantidad = lN_SFTipoproductoRemote.getSumaProductosByTipo(idTProducto);
            
            if(cantidad<=cant){
                FacesMessage fm = new FacesMessage("La cantidad ingresada excede al contenido");
                throw new ValidatorException(fm);
            }
        }catch(Exception ex){
                
        }
        
    }
    
    private static Context getInitialContext() throws NamingException {
        Hashtable env = new Hashtable();
        // WebLogic Server 10.x/12.x connection details
        env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        env.put(Context.PROVIDER_URL, "t3://127.0.0.1:7101");
        return new InitialContext(env);
    }
}
